package gui;



import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;

import util.CepConsulta;

import exceptions.UsuarioExistenteException;
import fachada.Fachada;
import fachada.IFachada;


import basicas.Endereco;
import basicas.Usuario;



@ManagedBean(name="cadastroUsuario")
public class CadastroUsuarioBean {
	
	private IFachada fachada = new Fachada();
	private Usuario usuario;
	private List<Usuario> lista;
	private String mensagem;
	private String cep;
	
	public CadastroUsuarioBean(){
		usuario = new Usuario();
		lista   = null;
		
	}
	
	public void setMensagem(String mensagem) {
		this.mensagem = mensagem;
	}
	
	public Usuario getUsuario() {
		return usuario;
	}
	
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	
	public List<Usuario> getLista() {
		if(lista==null){
			lista = fachada.consultarTodosUsuario();
		}
		return lista;
	}

	public String getMensagem() {
		return mensagem;
	}
	
	public String salvar(){
		try {
			if(fachada.consultarUsuarioPorEmail(usuario.getEmail())!=null){
				fachada.alterarUsuario(usuario);
				this.usuario=new Usuario();
			} else {
				fachada.inserirUsuario(usuario);
				FacesMessage faces = new FacesMessage("Usuario cadastrado com sucesso");
				FacesContext context = FacesContext.getCurrentInstance();
				context.addMessage(null, faces);
				lista=null;	
				this.usuario=new Usuario();
			}
		} catch (UsuarioExistenteException e) {
			setMensagem("Usuario ja possui cadastro!!!");
		}
		return null;
	}
	
	public void excluir(){
		fachada.excluirUsuario(usuario);
		lista=null;
	}
	
	public void limpar(){
		this.usuario=new Usuario();
	}

	
	
}
